package HashMap1;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class HashMap1 {
    class Solution {
        public int singleNumber(int[] nums) {
            // Step 1: 创建一个哈希表来记录每个数字的出现次数
            HashMap<Integer, Integer> map = new HashMap<>();

            for (int i = 0; i < nums.length; i++) {
                int num = nums[i]; // 获取当前数字
                map.put(num, map.getOrDefault(num, 0) + 1); // 更新哈希表
            }

// 获取 map 中所有键的集合
            Set<Integer> keys = map.keySet();  // 返回 {4, 1, 2}

// 获取迭代器
            Iterator<Integer> iterator = keys.iterator();

// 遍历所有键
            while (iterator.hasNext()) {
                int key = iterator.next();  // 获取当前键，比如 4
                if (map.get(key) == 1) {    // 检查键对应的值是否是 1
                    return key;             // 如果是 1，返回这个键
                }
            }


            return -1; // 理论上不会到这里，确保函数有返回值
        }
    }

}
